﻿using System;
namespace Producers.Kis.Xtee.Riik.Ee.Producer.Kis {
    
    
    public partial class CollateralClaim : global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ICollateralClaim {
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ClaimType @__collateralClaimType;
        
        private System.Decimal? @__collateralClaimTotal;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IClaimSpecification @__collateralClaimSpecification;
        
        private System.Collections.Generic.List<global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IDept> @__dept = new System.Collections.Generic.List<global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IDept>();
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__collateralClaimTypeDescription;
        
        public CollateralClaim() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public CollateralClaim(global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ClaimType @collateralClaimType, System.Decimal? @collateralClaimTotal, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IClaimSpecification @collateralClaimSpecification, System.Collections.Generic.List<global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IDept> @dept, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @collateralClaimTypeDescription) {
            this.@__collateralClaimType = @collateralClaimType;
            this.@__collateralClaimTotal = @collateralClaimTotal;
            this.@__collateralClaimSpecification = @collateralClaimSpecification;
            this.@__dept = @dept;
            this.@__collateralClaimTypeDescription = @collateralClaimTypeDescription;
        }
        
        /// <summary>
        /// Required parameters
        /// </summary>
        public CollateralClaim(global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ClaimType @collateralClaimType) {
            this.@__collateralClaimType = @collateralClaimType;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected CollateralClaim(ICollateralClaim @collateralClaim) {
            this.@__collateralClaimType = @collateralClaim.CollateralClaimType;
            this.@__collateralClaimTotal = @collateralClaim.CollateralClaimTotal;
            this.@__collateralClaimSpecification = @collateralClaim.CollateralClaimSpecification;
            this.@__dept = @collateralClaim.Dept;
            this.@__collateralClaimTypeDescription = @collateralClaim.CollateralClaimTypeDescription;
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ClaimType CollateralClaimType {
            get {
                return this.@__collateralClaimType;
            }
            set {
                this.@__collateralClaimType = value;
            }
        }
        
        public virtual System.Decimal? CollateralClaimTotal {
            get {
                return this.@__collateralClaimTotal;
            }
            set {
                this.@__collateralClaimTotal = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IClaimSpecification CollateralClaimSpecification {
            get {
                return this.@__collateralClaimSpecification;
            }
            set {
                this.@__collateralClaimSpecification = value;
            }
        }
        
        public virtual System.Collections.Generic.List<global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IDept> Dept {
            get {
                return this.@__dept;
            }
            set {
                this.@__dept = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString CollateralClaimTypeDescription {
            get {
                return this.@__collateralClaimTypeDescription;
            }
            set {
                this.@__collateralClaimTypeDescription = value;
            }
        }
    }
}
